package xdu.lz.stage6_threadpool.chapter4_schedulerExecutorService;

import java.util.Timer;
import java.util.TimerTask;

/**
 * Created at 2019/10/23 0023 下午 11:17
 * --
 *
 * 只有定时，没有线程管理，推荐用{@link java.util.concurrent.ScheduledExecutorService}
 *
 * 当任务消耗时长大于 执行周期，策略不同。比如任务消耗2s，任务周期1s
 *
 * 方案1： JDK Timer,任务 first,2s过后才会重复执行
 *
 *方案2：周期first,每隔1s会重复执行task
 */
public class TimerScheduler {

    public static void main(String[] args) {
        Timer timer = new Timer();

        /**
         * 存在问题，当执行的任务大于 任务周期，不会立刻再去重新执行任务
         *
         * 任务用时1s,执行周期500ms。但是真正执行周期是1s
         */
        TimerTask timerTask = new TimerTask() {
            @Override
            public void run() {
                System.out.println("=="+System.currentTimeMillis());
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        };
        timer.schedule(timerTask,0,500);
    }
}
